
export default {

  // namespace命名空间，相当于给model取个名字，但是各个model的namespce是不能重复的
  namespace: 'example',
  // state我理解为是数据仓库，就是存数据的地方，model里的数据都是存放在这里的
  state: {},

  /*订阅，在这里我的理解就是监听页面的，比如监听到进入了某某页面就让它执行相关代码之类的*/
  subscriptions: {
    setup({ dispatch, history }) {  // eslint-disable-line
    },
  },

  /*异步方法，简单来说我们的异步请求就写在这里*/
  effects: {
    *fetch({ payload }, { call, put }) {  // eslint-disable-line
      yield put({ type: 'save' });
    },
  },

  /*reducers把数据存到仓库（存到state）里的唯一方法，我们修改state里的数据不能直接像this.name='liu'这样去修改，而必须通过调用reducers里的方法，在之后会详细讲到*/
  reducers: {
    save(state, action) {
      return { ...state, ...action.payload };
    },
  },

};
